#pragma strict

private var power = 1200;	// 포탄 발사 속도

var bullet : Transform;		// 포탄
var target : Transform;		// LookAt() 목표
var spPoint : Transform;	// spawnPoint
var explosion : Transform;	// 포구 앞 화염
var snd : AudioClip;		// 발사음

private var ftime : float = 0.0f;

function Update()
{
	ftime += Time.deltaTime;
	
	transform.LookAt(target);	// 아군방향으로 회전
	
	var hit : RaycastHit;		// 탐색결과 저장
//	var fwd = Vector3.forward;	// 포탑의 전방(local) 4.8.5 local 좌표와 global 좌표
	var fwd = transform.TransformDirection(Vector3.forward);	// global

	// debug 
	Debug.DrawRay(spPoint.transform.position, fwd*10, Color.red);	// 거리표시
	//Debug.DrawLine(spPoint.transform.position, fwd*10);
	
	// 탐색실패
	if(Physics.Raycast(spPoint.transform.position, fwd, hit, 10) == false)
		return;
	
	if(hit.collider.gameObject.tag != "TANK" ||  ftime < 2.0f)
		return;
		
	// 포구 앞에 화염
	Instantiate(explosion, spPoint.transform.position, Quaternion.identity);
	
	// 포탄
//	var obj = Instantiate(bullet, spPoint.transform.position, Quaternion.identity);
	var obj = Instantiate(bullet, spPoint.transform.position, spPoint.transform.rotation); // 4.8.9 포탄의 회전방향 설정
	obj.rigidbody.AddForce(fwd * power);
	
	if(snd)
		AudioSource.PlayClipAtPoint(snd, spPoint.transform.position);
	
	ftime = 0.0f;
}